1. Field of the Invention
This invention relates to methods and systems for transferring firmware to a non-volatile memory, and in particular relates to methods and systems for transferring firmware to a non-volatile memory of a programmable controller system.
2. Description of the Related Art
Programmable controller systems are widely known for controlling industrial processes. A typical programmable controller system comprises a processor module and a plurality of other modules (e.g., I/O modules, scanner modules, and so on) disposed in a chassis and connected by way of a common backplane although other types of programmable controller systems also exist.
The processor module includes operating system firmware ("firmware"). Using the firmware, in conjunction with a user program specially adapted to a particular user's control needs, the processor module is able to perform a variety of tasks, including controlling a plurality of output devices in response to a plurality of input devices. The firmware is an image stored in non-volatile memory of the processor module. Periodically, it is necessary or desirable to upgrade this firmware in order to improve the performance of the programmable controller system.
A variety of different methods of upgrading the firmware of a processor module have been developed, all of which suffer common drawbacks. According to a first approach, a programming card is provided which contains the firmware upgrade in its memory. The processor module includes a connector which is adapted for receiving the programming card. When the programming card is plugged into the connector, a communication link is established between the programming card and the processor module, and the programming card downloads the firmware upgrade into the non-volatile memory.
The first drawback to this approach is that it is causes an undesirable transportation delay, i.e., a delay between (1) the point in time at which the programming card is ordered by the user and (2) the point in time at which the programming card is received by the user. The transportation delay is caused by the fact that the programming card is a physical unit which must be transported from the firmware provider to the user of the programmable controller system. The user and the firmware provider are often hundreds or even thousands of miles apart. Even if the programming card is sent via overnight mail, the user does not receive the programming card for about a day, assuming the firmware provider has a programming card available to send the user and can send the programming card immediately. Additionally, for reasons of security, the programming card is often sent to field service personnel instead of directly to the user, thereby further increasing the delay. These delays are often extremely expensive and inconvenient for the user, especially if the user has taken the programmable controller system out of operation pending the arrival of the firmware upgrade. In this regard, it should be noted that the usual reason for a user requesting the programming card for performing an upgrade is because the programmable controller system is not working as desired.
The second drawback to this approach is that it is hardware intensive. The processor module must be physically removed from the backplane and the programming card must be connected to the processor module. It would be preferable to minimize the extent to which intervention with the hardware aspects of the programmable controller system is required.
The third drawback to this approach is that it requires additional hardware, i.e., the programming card itself. The firmware provider must incur the additional cost of manufacturing the programming card for the purpose of performing the upgrade. Additionally, if the firmware provider does not have any programming cards available when the user requests an upgrade, then the user must wait an additional period of time before the upgrade can be performed.
According to a second approach, the firmware provider sends the user (or field service personnel) new non-volatile memory containing the firmware upgrade. To perform the firmware upgrade, the non-volatile memory which stores the firmware is physically removed (unplugged) from the processor module and replaced with new non-volatile memory containing the firmware upgrade.
This approach suffers the same drawbacks as the previous approach. Specifically, the fact that the firmware provider must send the user new non-volatile memory can cause a transportation delay which may be extremely expensive and inconvenient for the user. Additionally, this approach is hardware intensive. The processor module must be physically removed from the backplane and the non-volatile memory must be replaced. Again, it would be preferable to minimize the extent to which intervention with the hardware aspects of the programmable controller system is required.
Finally, according to a third approach, the firmware provider sends a floppy disk containing the firmware upgrade. To perform the firmware upgrade, the floppy disk is loaded into a personal computer and a local network link is established between the personal computer and the processor module. The link is established by way of a built-in communication port disposed on the processor module, i.e., a communication port which is physically disposed on the same circuit board and which is electrically connected to the address, data, and control buses of the processor module.
Again, this approach suffers the drawback that the firmware provider must send the user a floppy disk, and the resultant transportation delay may be extremely expensive and inconvenient for the user. Even if the upgrade is performed by field service personnel, who may have more immediate access to the firmware upgrade, the user is still required to wait for the field service personnel to arrive with the firmware upgrade.
Additionally, as a general rule (to which the above-mentioned type of processor modules are the exception), most processor modules do not have a built-in communication port. Therefore, this approach is not available for most processor modules.
Some processor modules have a physically separate daughterboard which includes a communication port linked to the processor module by a dual port RAM. The daughterboard is used for messaging with other programmable controller systems and for loading user programs (i.e., programs that run on top of the existing operating system firmware) into the processor module. However, in these processor modules, the firmware responsible for communicating through the dual port RAM is the same firmware as that which is upgraded. Thus, this firmware can not be used to transfer firmware through the dual port RAM during the firmware upgrade process.